<script>
import { mapMutations } from 'vuex';
export default {
	data() {
		return {
			scene: '',
			isStock: false, // 判断是否第一次进入小程序
			commonScene: '' // 普通二维码拿到的结果
		};
	},
	globalData: {
		change: false, // 判断码是否改变。改变在选人数页面调用onlogin
		homePage: false, // 判断首页是否组要调用onlogin（应用onlaunch需要，onshow不需要）
		onshowCommonScene: null,
		onLoadCommonScene: null
	},
	onLaunch: async function (opt) {
		console.log(opt, 'onload');
		this.commonScene = null;
		// // #ifdef MP-ALIPAY
		// console.log(5456454848);
		// my.getAuthCode({
		// 	scopes: 'auth_user',
		// 	success(res) {
		// 		console.log('支付宝登录', res);
		// 	}
		// });
		// // #endif

		this.autoUpdate();
		this.isStock = true;
		if (opt.query && opt.query.scene) {
			if (opt.path === 'pages/tab_bar/index') {
				this.ChangeIndex(true);
			}
			this.globalData.change = true;
			// 判断扫码是否不一致，不一致清除token和用户信息，用户信息有id可以判断用户是否登录，有没有会员福利
			if (uni.getStorageSync('scene') !== opt.query.scene) {
				uni.removeStorageSync('stock');
				uni.removeStorageSync('token');
			}
			this.scene = opt.query.scene;
			this.SET_SCENE(opt.query.scene);
			this.getPageData();
		} else if (opt.query && opt.query.q) {
			// 普通码
			this.commonScene = opt.query.q;
			this.globalData.onLoadCommonScene = this.commonScene;
			console.log(this.globalData.onLoadCommonScene, 'onlaod.扫码code');
			this.globalData.change = true;
		} else if (opt.query && opt.query.qrCode) {
			this.commonScene = opt.query.qrCode;
			this.globalData.onLoadCommonScene = this.commonScene;
			console.log(this.globalData.onLoadCommonScene, 'onlaod.扫码code');
			this.globalData.change = true;
			// if (match) {
			// 	this.commonScene = match;
			// 	this.getCommonCode('onLoad');
			// 	this.globalData.change = true;
			// } else {
			// 	uni.showToast({
			// 		title: '请重新扫码'
			// 	});
			// }
		} else {
			this.getPageData();
		}
		// 1.😊判断是否登录，没有的话拦截到登录

		this.globalData.homePage = false;
		// if (!uni.getStorageSync("token")) {
		// 获取加密code
		// console.log(uni.getAccountInfoSync().miniProgram.appId);获取小程序的appid

		// if (!opt.query.scene) {
		// 	const res = await uni.login()
		// 	const login = await this.$api.OnLogin({
		// 		code: res[1].code,
		// 		appid: uni.getAccountInfoSync().miniProgram.appId,
		// 		storeId: uni.getStorageSync('stock').id || 0,
		// 		scene: opt.query.scene ? opt.query.scene : ""
		// 	})
		// 	this.SET_LOGIN({
		// 		isLogin: true,
		// 		token: login.data.auth.token,
		// 		userInfo: login.data.user,
		// 		systemAppId: login.data.systemAppId,
		// 		stock: login.data.store,
		// 		otherData: login.otherData
		// 	})
		// }
		setTimeout(() => {
			this.isStock = false;
		}, 200);
		// }
	},
	onShow: function (opt) {
		// 	console.log(opt.referrerInfo.extraData);小程序从其他页面拿到的数据

		if (opt.referrerInfo && opt.referrerInfo.extraData) {
			// 				      // if (opt.referrerInfo.extraData) {
			// 用户点击【返回】按钮时可以收到的通知参数
			if (opt.referrerInfo.extraData.payStatus === '0') {
				// 支付失败
				if (opt.path === 'pages/order/pay' || opt.path === 'pages/pay/pay_order/index' || opt.path === 'pages/order/pay_detail') {
					uni.switchTab({
						url: '/pages/tab_bar/order/order'
					});
				}
			}
			if (opt.referrerInfo.extraData.payStatus === '1') {
				// 支付成功
				// if (opt.path !== 'pages/user/recharge/recharge') { // 充值金额
				// 	uni.switchTab({
				// 		url: '/pages/tab_bar/order/order'
				// 	})
				// }
				if (opt.path !== 'pages/user/recharge/recharge') {
					// 充值金额
					uni.redirectTo({
						url: '/pages/pay/pay_success/index'
					});
				}
			}
			if (opt.referrerInfo.extraData.payStatus === '3') {
				// 用户取消支付
				if (opt.path === 'pages/order/pay') {
					uni.switchTab({
						url: '/pages/tab_bar/order/order'
					});
				}
			}
			//else {
			//  不是通过点击【返回】按钮关闭半屏小程序时，可以通过场景值来判断是否是从另一个小程序返回的
			//   if (opt.scene === 1038) {
			//    从另一个小程序返回
			//     ......
			//   }
			// }
		}

		if (opt.query && opt.query.scene) {
			if (opt.path === 'pages/tab_bar/index') {
				this.ChangeIndex(true);
			}
			if (uni.getStorageSync('scene') !== opt.query.scene) {
				uni.removeStorageSync('stock');
				uni.removeStorageSync('token');
				uni.removeStorageSync('userInfo');
				this.globalData.change = true;
			}
			this.scene = opt.query.scene;
			this.SET_SCENE(opt.query.scene);
			if (!this.isStock) {
				this.getPageData();
				this.commonScene = null;
				// 3.调用获取门店信息
			}
			// if(opt.path === 'pages/tab_bar/index') {
			// 	uni.redirectTo({
			// 	url:'/pages/canteen/quantity/quantity'
			// })
			// }
		} else if (opt.query && opt.query.q && !this.isStock) {
			this.commonScene = opt.query.q;
			// this.getCommonCode('onShow');
			this.SET_SCENE('');
			console.log(opt.query.q, '扫码结果');
			this.globalData.onshowCommonScene = opt.query.q;
			this.globalData.change = true;
		} else if (opt.query && opt.query.qrCode && !this.isStock) {
			// const match = opt.query.qrCode.match(/[?&]id=(\d+)/)[1];
			this.commonScene = opt.query.qrCode;
			// this.getCommonCode('onShow');
			console.log(opt.query.q, '扫码结果');
			this.globalData.onshowCommonScene = opt.query.q;
			this.globalData.change = true;
		}
		// 判断是否有登录，有的话直接赋值vuex就不用再次登录
		if (opt.query) {
			if (!opt.query.scene && !opt.query.q && !opt.query.qrCode) {
				let token = uni.getStorageSync('token') || '',
					systemAppId = uni.getStorageSync('systemAppId') || '',
					stock = uni.getStorageSync('stock') || '',
					userInfo = uni.getStorageSync('userInfo') || '',
					otherData = uni.getStorageSync('otherData') || '';
				if (token) {
					// this.globalData.homePage = true
					this.SET_LOGIN({
						isLogin: true,
						token: token,
						systemAppId: systemAppId,
						stock: stock,
						userInfo: userInfo,
						otherData: otherData
					});
				}
			}
		}
	},
	onHide: function () {
		this.SET_POPUP({});
	},
	methods: {
		...mapMutations(['SET_LOGIN', 'SET_SCENE', 'SET_STOREID', 'SET_STOCK', 'SET_PAGEDATA', 'ChangeIndex', 'SET_POPUP']),
		...mapMutations('classify', ['SET_ClassifyConfig']),
		...mapMutations('quantity', ['SET_CANTEENDATA', 'SET_STOREID_Quantity']),

		// 2.😊进入县程序获取门店信息
		getPageData() {
			this.$api
				.GetDesignPageData({
					code: 'mobile_food',
					scene: this.scene
				})
				.then((res) => {
					// // 判断门店Id是否不一致，不一致清除token和用户信息
					// if(uni.getStorageSync('stock').id !== res.otherData.id) {
					// 	uni.removeStorageSync('stock')
					// 	uni.removeStorageSync('token')
					// 	uni.removeStorageSync('userInfo')
					// }
					// console.log(res.data.items); 后台返回页面标签和当前页数据
					this.SET_STOCK(res.otherData); // 存储的stock
					this.SET_PAGEDATA(res.data.items); // 首页信息
					this.SET_POPUP(res.data.popUp || {}); // 首页信息
					this.SET_ClassifyConfig(res.data.classifyConfigData); // 购物车配置
					this.SET_CANTEENDATA(res.data.canteenConfig); // 开台页配置
				});
		},
		autoUpdate() {
			// 获取小程序更新机制兼容
			if (uni.canIUse('getUpdateManager')) {
				const updateManager = uni.getUpdateManager();
				//1. 检查小程序是否有新版本发布
				updateManager.onCheckForUpdate(function (res) {
					// 请求完新版本信息的回调
					if (res.hasUpdate) {
						//2. 小程序有新版本，则静默下载新版本，做好更新准备
						updateManager.onUpdateReady(function () {
							uni.showModal({
								title: '更新提示',
								content: '新版本已经准备好，是否重启应用？',
								success: function (res) {
									if (res.confirm) {
										//3. 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
										updateManager.applyUpdate();
									} else if (res.cancel) {
										//不应用
									}
								}
							});
						});
						updateManager.onUpdateFailed(function () {
							// 新的版本下载失败
							uni.showModal({
								title: '已经有新版本了哟~',
								content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~'
							});
						});
					}
				});
			} else {
				// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
				uni.showModal({
					title: '提示',
					content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
				});
			}
		},
		// 🙌😒
		async getCommonCode(type) {
			const q = decodeURIComponent(this.commonScene);
			const id = q.slice(q.indexOf('=') + 1);
			const res = await this.$api.getCodeDeskInfo({ id });
			this.SET_SCENE(res.data.deskId + ',' + res.data.storeId);
			this.SET_STOREID_Quantity(res.data.storeId);
			if (type === 'onLoad') {
				// this.globalData.change = true;
				if (uni.getStorageSync('scene') !== res.data.deskId + ',' + res.data.storeId) {
					uni.removeStorageSync('stock');
					uni.removeStorageSync('token');
				}
				this.scene = res.data.deskId + ',' + res.data.storeId;
				// this.SET_SCENE(res.data.deskId + ',' + res.data.storeId);
				this.getPageData();
			} else {
				if (uni.getStorageSync('scene') !== res.data.deskId + ',' + res.data.storeId) {
					uni.removeStorageSync('stock');
					uni.removeStorageSync('token');
					uni.removeStorageSync('userInfo');
					// this.globalData.change = true;
				}
				this.scene = res.data.deskId + ',' + res.data.storeId;
				// this.SET_SCENE(res.data.deskId + ',' + res.data.storeId);
				if (!this.isStock) {
					this.getPageData();
					// 3.调用获取门店信息
				}
			}
		}
	}
};
</script>

<style lang="scss">
@import '@/uni_modules/uview-ui/index.scss';
@import '@/static/styles/contentmixin.scss';
@import '@/static/styles/iconfont.css';
</style>
